package com.zbangmall.util.crypt;

/**
 * Blowfish加密算法Java实现
 */
public class Decode {
	/**
	 * 比较安全的字符串转换
	 *
	 * @param str
	 * @return
	 */
	public static String str2HexStr(String str) {
		char[]        chars = "0123456789ABCDEF".toCharArray();
		StringBuilder sb    = new StringBuilder("");
		byte[]        bs    = str.getBytes();
		int           bit;
		for (int i = 0; i < bs.length; i++) {
			bit = (bs[i] & 0x0f0) >> 4;
			sb.append(chars[bit]);
			bit = bs[i] & 0x0f;
			sb.append(chars[bit]);
			// sb.append(' ');
		}
		return sb.toString().trim();
	}

	/**
	 * 比较安全的字符串转换
	 *
	 * @param hexStr
	 * @return
	 */
	public static String hexStr2Str(String hexStr) {
		String str   = "0123456789ABCDEF";
		char[] hexs  = hexStr.toCharArray();
		byte[] bytes = new byte[hexStr.length() / 2];
		int    n;
		for (int i = 0; i < bytes.length; i++) {
			n = str.indexOf(hexs[2 * i]) * 16;
			n += str.indexOf(hexs[2 * i + 1]);
			bytes[i] = (byte) (n & 0xff);
		}
		return new String(bytes);
	}
}